#include<iostream>
#include<stack>
using namespace std;
class Solution {
//public:
//    bool isValid(string s) {
//        stack<char> st;
//        for (auto ch : s)
//        {
//            if (ch == '[' || ch == '(' || ch == '{')
//                st.push(ch);
//            else
//            {
//                if (st.empty())return false;
//                char left = st.top();
//                if (ch == ')' && left != '(')return false;
//                if (ch == ']' && left != '[')return false;
//                if (ch == '}' && left != '{')return false;
//                st.pop();
//            }
//        }
//        return st.empty();
//    }
};





#include<iostream>
#include<stack>
using namespace std;
const int N = 1e5 + 10;
int  q, n;
int arr[N], brr[N];
int main()
{
    cin >> q;
    while (q--)
    {
        int j = 1;
        cin >> n;
        stack<int> st;
        for (int i = 1; i <= n; i++)cin >> arr[i];
        for (int i = 1; i <= n; i++)cin >> brr[i];
        for (int i = 1; i <= n; i++)
        {
            st.push(arr[i]);
            while (j <= n && st.size() && brr[j] == st.top())
            {
                st.pop();
                j++;
            }
        }
        if (st.empty())cout << "Yes" << endl;
        else cout << "No" << endl;
    }
    return 0;
}